主键在表中的位置会影响性能吗 您所在的位置:网站首页 给表添加主键 sql 主键在表中的位置会影响性能吗

主键在表中的位置会影响性能吗

2023-03-13 08:35| 来源: 网络整理| 查看: 265

主键可能会引起数据位置频繁变动,影响性能。主键将会添加到表上的所以其他索引中,因此会降低性能,影响插入速度。

因为自动增长,在手动要插入指定ID的记录时会显得麻烦,尤其是当系统与其它系统集成时,需要数据导入时,很难保证原系统的ID不发生主键冲突。特别是在新系统上线时,新旧系统并行存在,并且是异库异构的数据库的情况下,需要双向同步时,自增主键将是你的噩梦。

主键的数据类型选择。

关于主键的类型选择上最常见的争论是用整型还是字符型的问题,关于这个问题高性能MySQL一书中有明确论断,整数通常是标识列的最好选择,因为它很快且可以使用AUTOINCREAMENT,如果可能,应该避免使用字符串类型作为标识列,因为很消耗空间,且通常比数字类型慢。

索引就相当于对指定的列进行排序,排序有利于对该列的查询,可以大大增加查询效率,

建立索引也是要消耗系统资源,所以索引会降低写操作的效率 

主键,唯一,联合都属于索引

主键属于唯一索引,且一个表只能有一个主键,主键列不允许空值唯一索引可以一个表中可以有多个,而且允许为空,列中的值唯一 多个字段的多条件查询多使用联合索引。

主键是一个索引,mysql的索引是B+树,Mysql会按照键值的大小进行顺序存放,如果我们设置自增id为主键,这个时候主键是按照一种紧凑的接近顺序写入的方式进行存储数据。如果我们用其他字段作为主键的话,此时Mysql不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉,此时又要从磁盘上读回来,这增加了很多额外的开销,同时频繁的移动、分页操作造成了大量的碎片。

- 考虑性能消耗

- 考虑资源消耗

- 考虑分库分表

欢迎分享,转载请注明来源:内存溢出

原文地址:https://outofmemory.cn/zaji/5902451.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有